热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python|使用Selenium自动化脸书生日快乐帖

Python|使用Selenium自动化脸书生日快乐帖原文:h

Python |使用Selenium自动化脸书生日快乐帖

原文:https://www . geesforgeks . org/python-自动化-生日快乐-facebook 上的帖子-使用-selenium/

众所周知,Selenium 是一种通过程序控制网络浏览器的工具。它可以在所有浏览器、操作系统中使用,它的程序是用各种编程语言编写的,即 Java、Python(所有版本)。

Selenium 可以帮助我们自动完成任何经常在笔记本电脑上完成的任务,从使用脸书信使发短信到 WhatsApp,每天在推特上发推文,在脸书祝朋友“生日快乐”,在谷歌上搜索任何我们想学的东西,以及更多的任务。所有这些任务都可以在一个小的实现中使用 selenium 实现自动化。

安装:


  • 转到命令提示符,并输入:

pip install selenium


  • 完成后,下载一个用于自动化的 web 驱动程序。这里,我们将使用来自http://chromedriver.chromium.org/的 chromedriver

让我们学习如何将在脸书朋友的时间线上许愿的过程自动化。

这种自动化的整个过程可以分为以下几个部分:


  • 使用用户名和密码等凭据登录脸书应用程序。

  • 在生日是今天的朋友的时间线上发布“生日快乐”消息。

以下是步骤:


  • 创建一个浏览器对象,并使用 get()函数向我们想要连接/使用的网站发送请求。

  • 找到用户名和密码输入框、登录按钮等元素,使用 selenium 函数(如 click()、send_keys()等)分别点击按钮并输入用户名和密码。

  • 之后使用 get()函数向/events/生日/页面发送请求。

  • 在这个页面的顶部,有一张“今天的生日”卡片,上面显示了一个朋友的名字,他的生日是今天,同时还有一个输入文本框,用于输入他们时间线上的任何提要。

  • 使用这些输入文本框的 XPATH,我们将使用 selenium 的 send_keys()函数发送我们的提要,即“生日快乐”。

  • 关闭浏览器。

注:在执行以下程序之前,创建一个单独的 test.txt 文件,并在其中输入您的脸书密码。

下面是实现:

Python 3

# importing necessary classes
# from different modules
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
import time
chrome_optiOns= webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome("chromedriver.exe")
# open facebook.com using get() method
browser.get('https://www.facebook.com/')
# user_name or e-mail id
username = "agrawal.abhi108@gmail.com"
# getting password from text file
with open('test.txt', 'r') as myfile:
    password = myfile.read().replace('\n', '')
print("Let's Begin")
element = browser.find_elements_by_xpath('//*[@id ="email"]')
element[0].send_keys(username)
print("Username Entered")
element = browser.find_element_by_xpath('//*[@id ="pass"]')
element.send_keys(password)
print("Password Entered")
# logging in
log_in = browser.find_elements_by_id('loginbutton')
log_in[0].click()
print("Login Successful")
browser.get('https://www.facebook.com/events/birthdays/')
feed = 'Happy Birthday !'
element = browser.find_elements_by_xpath("//*[@class ='enter_submit\
       uiTextareaNoResize uiTextareaAutogrow uiStreamInlineTextarea\
                  inlineReplyTextArea mentionsTextarea textInput']")
cnt = 0
for el in element:
    cnt += 1
    element_id = str(el.get_attribute('id'))
    XPATH = '//*[@id ="' + element_id + '"]'
    post_field = browser.find_element_by_xpath(XPATH)
    post_field.send_keys(feed)
    post_field.send_keys(Keys.RETURN)
    print("Birthday Wish posted for friend" + str(cnt))
# Close the browser
browser.close()

推荐阅读
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • PyCharm中配置Pylint静态代码分析工具
    本文详细介绍如何在PyCharm中配置和使用Pylint,帮助开发者进行静态代码检查,确保代码符合PEP8规范,提高代码质量。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
author-avatar
小丽之家ko
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有